from scipy import ndimage
from skimage import data,util
from matplotlib import pyplot as plt
img = data.astronaut()[:,:,0]
#对图像加入胡椒噪声
pepper_img = util.random_noise(img,mode = 'pepper',seed = None,clip = True)
#对图像加入盐粒噪声
salt_img = util.random_noise(img,mode = 'salt',seed = None,clip = True)
n = 3
#最大值滤波
max_img = ndimage.maximum_filter(pepper_img,(n,n))
#最小值滤波
min_img = ndimage.minimum_filter(salt_img,(n,n))
#显示图像
plt.figure()
plt.imshow(img,cmap = 'gray') #显示原始图像
plt.figure()
plt.imshow(pepper_img,cmap = 'gray') #显示加胡椒噪声图像
plt.figure()
plt.imshow(salt_img,cmap = 'gray') #显示加盐粒噪声图像
plt.figure()
plt.imshow(max_img,cmap = 'gray') #显示最大值滤波结果
plt.figure()
plt.imshow(min_img,cmap = 'gray') #显示最小值滤波结果

#最大值比原图更亮了，最小值比原图更暗了
#最大值滤波对去除胡椒噪声有效
#最小值滤波对去除盐粒噪声有效